package com.bdqn.design.service.impl;

import com.bdqn.design.dao.NewsDao;
import com.bdqn.design.pojo.News;
import com.bdqn.design.service.NewsService;

/**
 * NewsServiceImpl
 *
 * @author LILIBO
 * @since 2024/7/4
 */
public class NewsServiceImpl implements NewsService {

    /**
     * 引入DAO层（实例化对应的实现）
     */
    // 在Service层直接引入实例对象（依赖性强）
    // private NewsDao newsDao = new NewsDaoMySQLImpl();
    // 使用简单工厂完成对接口实例的创建（转换到简单工厂中去获取）
    // private NewsDao newsDao = SimpleDaoFactory.getInstance();
    //
    private NewsDao newsDao;

    /**
     * 在实例化NewsServiceImpl时必须给NewsDao赋值
     *
     * @param newsDao
     */
    public NewsServiceImpl(NewsDao newsDao) {
        this.newsDao = newsDao;
    }

    /**
     * 通过Setter方法完成对象的注入（依赖倒置）
     *
     * @param newsDao
     */
    public void setNewsDao(NewsDao newsDao) {
        this.newsDao = newsDao;
    }

    /**
     * 保存新闻
     *
     * @param news
     * @return
     */
    @Override
    public int save(News news) {
        return newsDao.save(news);
    }

}
